let express = require("express");
var path = require("path");
var fsp = require("fs/promises");

let Router = express.Router();


var db = path.join(__dirname, "../data");


// app.get() 可以理解为监听操作, 浏览器以get方式向/grade发送的请求
// /grade
Router.get("/", function (req, res) {
    fsp.readFile(path.join(db, "./grade.json"), "utf-8").then((list) => { // 读取文件时返回的就是文本(json字符串)
        // res.end(list); // http模块内置的

        // express中封装的
        res.send(list);
    }).catch(err => {
        res.end(JSON.stringify(err))
    })
})

// /grade/searchGradeById
Router.get("/searchGradeById", function (req, res) {
    // req.query  接收前端以get方式传递的数据
    // req.body   接收前端以post方式传递的数据
    if (Object.keys(req.query).includes("id")) {  // 是否存在属性名为"id"
        fsp.readFile(path.join(db, "./grade.json"), "utf-8").then((list) => { // 读取文件时返回的就是文本(json字符串)
            list = JSON.parse(list); //将json字符串解析为json对象(对象/数组)

            var result = list.find(v => v.id == req.query.id);

            // if (result) {
            //     res.end(JSON.stringify(result))
            // } else {
            //     res.end("数据不存在")
            // }
            if (result) {
                var obj = {
                    code: 200,  // 自定义属性表示查询的结果  (200  404  500)
                    message: "OK",
                    data: result,
                }
                res.end(JSON.stringify(obj))
            } else {

                var obj = {
                    code: 404,  // 自定义属性表示查询的结果  (200  404  500)
                    message: "Not Found",
                }
                res.send(JSON.stringify(obj))
            }

        }).catch(err => {
            res.send(JSON.stringify(err));
        })
    } else {
        var obj = {
            code: 100,
            message: "请传入完整参数",
        }
        // res.end(JSON.stringify(obj))
        res.send(obj);  // 
        // res.json(obj);
    }
})


module.exports = Router;